package net.ufrog.common.weixin.pojos;

import java.io.Serializable;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * 支付统一下单反馈对象<br>
 * 暂不支持代金券支付
 * 
 * @author ultrafrog
 * @version 1.0, 2015-11-20
 * @since 1.0
 */
@XStreamAlias("xml")
public class PaymentUnifiedOrderReturn implements Serializable {

	private static final long serialVersionUID = 7258992303584405541L;

	/** 返回状态码 */
	@XStreamAlias("return_code")
	private String returnCode;
	
	/** 返回消息 */
	@XStreamAlias("return_msg")
	private String returnMsg;
	
	/** 公众号编号 */
	private String appid;
	
	/** 商户号 */
	@XStreamAlias("mch_id")
	private String mchId;
	
	/** 设备号 */
	@XStreamAlias("device_info")
	private String deviceInfo;
	
	/** 随机字符串 */
	@XStreamAlias("nonce_str")
	private String nonceStr;
	
	/** 签名 */
	private String sign;
	
	/** 业务结果 */
	@XStreamAlias("result_code")
	private String resultCode;
	
	/** 错误代码 */
	@XStreamAlias("err_code")
	private String errCode;
	
	/** 错误代码描述 */
	@XStreamAlias("err_code_des")
	private String errCodeDes;
	
	/** 用户标识 */
	private String openid;
	
	/** 是否关注公众号 */
	@XStreamAlias("is_subscribe")
	private String isSubscribe;
	
	/** 交易类型 */
	@XStreamAlias("trade_type")
	private String tradeType;
	
	/** 预支付编号 */
	@XStreamAlias("prepay_id")
	private String prepayId;
	
	/** 二维码链接 */
	@XStreamAlias("code_url")
	private String codeUrl;
	
	/** 付款银行 */
	@XStreamAlias("bank_type")
	private String bankType;
	
	/** 总金额 */
	@XStreamAlias("total_fee")
	private Integer totalFee;
	
	/** 货币种类 */
	@XStreamAlias("fee_type")
	private String feeType;
	
	/** 现金支付金额 */
	@XStreamAlias("cash_fee")
	private Integer cashFee;
	
	/** 现金支付货币类型 */
	@XStreamAlias("cash_fee_type")
	private String cashFeeType;
	
	/** 代金券金额 */
	@XStreamAlias("coupon_fee")
	private Integer couponFee;
	
	/** 代金券数量 */
	@XStreamAlias("coupon_count")
	private Integer couponCount;
	
	/** 微信支付订单号 */
	@XStreamAlias("transaction_id")
	private String transactionId;
	
	/** 商户订单号 */
	@XStreamAlias("out_trade_no")
	private String outTradeNo;
	
	/** 商户数据包 */
	private String attach;
	
	/** 完成时间 */
	@XStreamAlias("time_end")
	private String timeEnd;

	/**
	 * 读取返回状态码
	 * 
	 * @return
	 * @see #returnCode
	 */
	public String getReturnCode() {
		return returnCode;
	}

	/**
	 * 设置返回状态码
	 * 
	 * @param returnCode
	 * @see #returnCode
	 */
	public void setReturnCode(String returnCode) {
		this.returnCode = returnCode;
	}

	/**
	 * 读取返回消息
	 * 
	 * @return
	 * @see #returnMsg
	 */
	public String getReturnMsg() {
		return returnMsg;
	}

	/**
	 * 设置返回消息
	 * 
	 * @param returnMsg
	 * @see #returnMsg
	 */
	public void setReturnMsg(String returnMsg) {
		this.returnMsg = returnMsg;
	}

	/**
	 * 读取公众号编号
	 * 
	 * @return
	 * @see #appid
	 */
	public String getAppid() {
		return appid;
	}

	/**
	 * 设置公众号编号
	 * 
	 * @param appid
	 * @see #appid
	 */
	public void setAppid(String appid) {
		this.appid = appid;
	}

	/**
	 * 读取商户号
	 * 
	 * @return
	 * @see #mchId
	 */
	public String getMchId() {
		return mchId;
	}

	/**
	 * 设置商户号
	 * 
	 * @param mchId
	 * @see #mchId
	 */
	public void setMchId(String mchId) {
		this.mchId = mchId;
	}

	/**
	 * 读取设备号
	 * 
	 * @return
	 * @see #deviceInfo
	 */
	public String getDeviceInfo() {
		return deviceInfo;
	}

	/**
	 * 设置设备号
	 * 
	 * @param deviceInfo
	 * @see #deviceInfo
	 */
	public void setDeviceInfo(String deviceInfo) {
		this.deviceInfo = deviceInfo;
	}

	/**
	 * 读取随机字符串
	 * 
	 * @return
	 * @see #nonceStr
	 */
	public String getNonceStr() {
		return nonceStr;
	}

	/**
	 * 设置随机字符串
	 * 
	 * @param nonceStr
	 * @see #nonceStr
	 */
	public void setNonceStr(String nonceStr) {
		this.nonceStr = nonceStr;
	}

	/**
	 * 读取签名
	 * 
	 * @return
	 * @see #sign
	 */
	public String getSign() {
		return sign;
	}

	/**
	 * 设置签名
	 * 
	 * @param sign
	 * @see #sign
	 */
	public void setSign(String sign) {
		this.sign = sign;
	}

	/**
	 * 读取业务结果
	 * 
	 * @return
	 * @see #resultCode
	 */
	public String getResultCode() {
		return resultCode;
	}

	/**
	 * 设置业务结果
	 * 
	 * @param resultCode
	 * @see #resultCode
	 */
	public void setResultCode(String resultCode) {
		this.resultCode = resultCode;
	}

	/**
	 * 读取错误代码
	 * 
	 * @return
	 * @see #errCode
	 */
	public String getErrCode() {
		return errCode;
	}

	/**
	 * 设置错误代码
	 * 
	 * @param errCode
	 * @see #errCode
	 */
	public void setErrCode(String errCode) {
		this.errCode = errCode;
	}

	/**
	 * 读取错误代码描述
	 * 
	 * @return
	 * @see #errCodeDes
	 */
	public String getErrCodeDes() {
		return errCodeDes;
	}

	/**
	 * 设置错误代码描述
	 * 
	 * @param errCodeDes
	 * @see #errCodeDes
	 */
	public void setErrCodeDes(String errCodeDes) {
		this.errCodeDes = errCodeDes;
	}
	
	/**
	 * 读取用户标识
	 * 
	 * @return
	 * @see #openid
	 */
	public String getOpenid() {
		return openid;
	}

	/**
	 * 设置用户标识
	 * 
	 * @param openid
	 * @see #openid
	 */
	public void setOpenid(String openid) {
		this.openid = openid;
	}

	/**
	 * 读取是否关注公众号
	 * 
	 * @return
	 * @see #isSubscribe
	 */
	public String getIsSubscribe() {
		return isSubscribe;
	}

	/**
	 * 设置是否关注公众号
	 * 
	 * @param isSubscribe
	 * @see #isSubscribe
	 */
	public void setIsSubscribe(String isSubscribe) {
		this.isSubscribe = isSubscribe;
	}

	/**
	 * 读取交易类型
	 * 
	 * @return
	 * @see #tradeType
	 */
	public String getTradeType() {
		return tradeType;
	}

	/**
	 * 设置交易类型
	 * 
	 * @param tradeType
	 * @see #tradeType
	 */
	public void setTradeType(String tradeType) {
		this.tradeType = tradeType;
	}

	/**
	 * 读取预支付编号
	 * 
	 * @return
	 * @see #prepayId
	 */
	public String getPrepayId() {
		return prepayId;
	}

	/**
	 * 设置预支付编号
	 * 
	 * @param prepayId
	 * @see #prepayId
	 */
	public void setPrepayId(String prepayId) {
		this.prepayId = prepayId;
	}

	/**
	 * 读取二维码链接
	 * 
	 * @return
	 * @see #codeUrl
	 */
	public String getCodeUrl() {
		return codeUrl;
	}

	/**
	 * 设置二维码链接
	 * 
	 * @param codeUrl
	 * @see #codeUrl
	 */
	public void setCodeUrl(String codeUrl) {
		this.codeUrl = codeUrl;
	}

	/**
	 * 读取付款银行
	 * 
	 * @return
	 * @see #bankType
	 */
	public String getBankType() {
		return bankType;
	}

	/**
	 * 设置付款银行
	 * 
	 * @param bankType
	 * @see #bankType
	 */
	public void setBankType(String bankType) {
		this.bankType = bankType;
	}

	/**
	 * 读取总金额
	 * 
	 * @return
	 * @see #totalFee
	 */
	public Integer getTotalFee() {
		return totalFee;
	}

	/**
	 * 设置总金额
	 * 
	 * @param totalFee
	 * @see #totalFee
	 */
	public void setTotalFee(Integer totalFee) {
		this.totalFee = totalFee;
	}

	/**
	 * 读取货币种类
	 * 
	 * @return
	 * @see #feeType
	 */
	public String getFeeType() {
		return feeType;
	}

	/**
	 * 设置货币种类
	 * 
	 * @param feeType
	 * @see #feeType
	 */
	public void setFeeType(String feeType) {
		this.feeType = feeType;
	}

	/**
	 * 读取现金支付金额
	 * 
	 * @return
	 * @see #cashFee
	 */
	public Integer getCashFee() {
		return cashFee;
	}

	/**
	 * 设置现金支付金额
	 * 
	 * @param cashFee
	 * @see #cashFee
	 */
	public void setCashFee(Integer cashFee) {
		this.cashFee = cashFee;
	}

	/**
	 * 读取现金支付货币类型
	 * 
	 * @return
	 * @see #cashFeeType
	 */
	public String getCashFeeType() {
		return cashFeeType;
	}

	/**
	 * 设置现金支付货币类型
	 * 
	 * @param cashFeeType
	 * @see #cashFeeType
	 */
	public void setCashFeeType(String cashFeeType) {
		this.cashFeeType = cashFeeType;
	}

	/**
	 * 读取代金券金额
	 * 
	 * @return
	 * @see #couponFee
	 */
	public Integer getCouponFee() {
		return couponFee;
	}

	/**
	 * 设置代金券金额
	 * 
	 * @param couponFee
	 * @see #couponFee
	 */
	public void setCouponFee(Integer couponFee) {
		this.couponFee = couponFee;
	}

	/**
	 * 读取代金券数量
	 * 
	 * @return
	 * @see #couponCount
	 */
	public Integer getCouponCount() {
		return couponCount;
	}

	/**
	 * 设置代金券数量
	 * 
	 * @param couponCount
	 * @see #couponCount
	 */
	public void setCouponCount(Integer couponCount) {
		this.couponCount = couponCount;
	}

	/**
	 * 读取微信支付订单号
	 * 
	 * @return
	 * @see #transactionId
	 */
	public String getTransactionId() {
		return transactionId;
	}

	/**
	 * 设置微信支付订单号
	 * 
	 * @param transactionId
	 * @see #transactionId
	 */
	public void setTransactionId(String transactionId) {
		this.transactionId = transactionId;
	}

	/**
	 * 读取商户订单号
	 * 
	 * @return
	 * @see #outTradeNo
	 */
	public String getOutTradeNo() {
		return outTradeNo;
	}

	/**
	 * 设置商户订单号
	 * 
	 * @param outTradeNo
	 * @see #outTradeNo
	 */
	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	/**
	 * 读取商户数据包
	 * 
	 * @return
	 * @see #attach
	 */
	public String getAttach() {
		return attach;
	}

	/**
	 * 设置商户数据包
	 * 
	 * @param attach
	 * @see #attach
	 */
	public void setAttach(String attach) {
		this.attach = attach;
	}

	/**
	 * 读取完成时间
	 * 
	 * @return
	 * @see #timeEnd
	 */
	public String getTimeEnd() {
		return timeEnd;
	}

	/**
	 * 设置完成时间
	 * 
	 * @param timeEnd
	 * @see #timeEnd
	 */
	public void setTimeEnd(String timeEnd) {
		this.timeEnd = timeEnd;
	}
}
